周りで Brainfuck が流行っているよう(?)だったので自分も参入してインタープリターを書いてみました。
Brainfuckとは?
命令が8個しかないプログラミング言語です。詳細はWikipedia参照。簡単に説明すると・・・
0で初期化された少なくとも30000個のバイト配列とポインタがあり、ポインタは配列の先頭を指している。この配列に対し以下の8つの命令のみが使える。
-
: ポインタのインクリメント
- < : ポインタのディクリメント
-
- : (ポインタがさす)メモリの値を1増やす
- – : メモリの値を1減らす
- . : メモリの値を出力に書き出す
- , : メモリに入力から1byte読み込む
- [ : メモリの値が0なら対応する ] (の直後)に飛ぶ
- ] : メモリの値が0でないなら対応する [ (の直後)に戻る/li>
Interpreter
c++で書いたインタープリター。ネット上のサンプルプログラムを幾つか実行して思い通り動いたが、正しいかは不明。コンパイルして、実行時に brainfuck のファイルを引数で与えると実行します。